From c5829bd0e2134ed9f05fe9d6fbe1f3156a00352e Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Sun, 31 May 2020 15:09:31 +0200 Subject: [PATCH] fallback-c89: Try to make isnanf work --- gtk/fallback-c89.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/gtk/fallback-c89.c b/gtk/fallback-c89.c index 505d52e13a..65cb53589e 100644 --- a/gtk/fallback-c89.c +++ b/gtk/fallback-c89.c @@ -20,6 +20,7 @@ #include "config.h" #include +#include /* Workaround for round() for non-GCC/non-C99 compilers */ #ifndef HAVE_ROUND @@ -93,26 +94,21 @@ isnan (double x) #endif #ifndef HAVE_DECL_ISNANF -#if 1 -#define isnanf(x) isnan(x) -#else -/* it seems of the supported compilers only - * MSVC does not have isnanf(), but it does - * have _isnanf() which does the same as isnanf() - */ -#ifdef _MSC_VER -static inline gboolean -isnanf (float x) -{ - return _isnanf (x); -} -#elif defined (__GNUC__) +#if defined (__GNUC__) /* gcc has an intern function that it warns about when * using -Wshadow but no header properly declares it, * so we do it instead. */ extern int isnanf (float x); -#endif +#else +static inline int +isnanf (float x) +{ + /* Either use the C99 type infering macro, or the fallback from above. + * MSVC has _isnanf, but only on x64 + */ + return isnan (x); +} #endif #endif -- 2.30.2